home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
vis082s.arc
/
PCBOARD.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-17
|
9KB
|
241 lines
{$R-,S-,I-,D-,F+,V-,B-,L+,O+ }
unit pcboard;
interface
uses crt,dos,
gentypes,
Subs1,configrt;
Procedure Definefiles;
implementation
Type Single_87 = System.Single;
Procedure Def_pcbFile;
type
anystring = string[128];
longstring = string[255];
string2 = string[2];
string8 = string[8];
string12 = string[12];
string13 = string[13];
string20 = string[20];
string30 = string[30];
string65 = string[65];
string72 = string[72];
string160 = string[160];
string255 = string[255];
char2 = array[1..2] of char;
char3 = array[1..3] of char;
char4 = array[1..4] of char;
char5 = array[1..5] of char;
char6 = array[1..6] of char;
char7 = array[1..7] of char;
char8 = array[1..8] of char;
char9 = array[1..9] of char;
char10 = array[1..10] of char;
char11 = array[1..11] of char;
char12 = array[1..12] of char;
char13 = array[1..13] of char;
char14 = array[1..14] of char;
char15 = array[1..15] of char;
char16 = array[1..16] of char;
char19 = array[1..19] of char;
char24 = array[1..24] of char;
char25 = array[1..25] of char;
char30 = array[1..30] of char;
char32 = array[1..32] of char;
char45 = array[1..45] of char;
char128 = array[1..128] of char;
{layout of the PCBOARD.SYS file while doors are open}
PCB_sys_rec = Record { 128 Bytes for PCBOARD version 14.0 }
Display : char2; { Sysop's Display ON/OFF }
Printer : char2; { Sysop's Printer ON/OFF }
PageBell : char2; { Sysop's Page Bell ON/OFF }
CallAlarm: char2; { Caller Alarm ON/OFF }
ModemType: char2; { Error Correcting Modem YES/NO }
SysopNext: Char; { Sysop "Next On" Flag }
BaudRate : char5; { "CONNECT" Baud Rate of Caller }
Name : char25; { Full Name of Caller (First & Last)}
FirstName: char15; { First Name of Caller }
Graphics : Char; { Graphics Mode of Caller }
NodeChat : Char; { Available for Node Chat YES/NO }
BaudOpen : char5; { Baud Rate to Open Modem at }
RecordNum: Integer; { User's Database Record Number (MKI$)}
Password : char12; { Password of Caller }
TimeLogOn: Integer; { Time User Logged On (MKI$ minutes)}
TimeUsed : Integer; { Time Used Today (MKI$ minutes)}
LogOnStr : char5; { Time User Logged On (HH:MM:SS)}
TimeLimit: Integer; { Daily Time Limit (MKI$ minutes)}
ByteLmtDL: Integer; { Daily Download Limit (MKI$ K-bytes)}
ConfExit : Char; { Conference (Area) User Exited From }
ConfFlags: char5; { Areas User Has "Joined" Today }
ConfScan : char5; { Areas User Has Scanned for New Mail }
ConfTime : Integer; { Area "Bonus" Time (MKI$ minutes)}
TimeCred : Integer; { Upload Time Credit (MKI$ minutes)}
Language : char4; { Language Version Being Used }
TimeLeft : Integer; { Session Time Remaining(MKI$ minutes)}
NodeNum : Char; { BBS Node Number That Caller is Using}
EventTime: char5; { Scheduled EVENT Time (HH:MM)}
EventFlag: char2; { Is EVENT Time Active? }
EventMove: char2; { Delay EVENT Until User Logs Off? }
MsgRecall: char4; { "Memorized" Message Number (MKS$)}
ComPortID: Char; { Com Port Number (0, 1, 2) }
Reserved : char2; { Reserved for Future Use }
End;
{layout of the USERS.PCB file}
pcb_user_rec = record
name: char25;
city: char24;
passwd: char12; {no spaces allowed}
busphone: char13;
phone: char13;
date: char8; {mm-dd-yy of last call}
time: char5; {hh:mm of last call}
xpert: char; {Y or N}
protocol: char; {X, C, Y, N}
conferences: char9; {10000000}
inconference: char;
rejoin: char; {Y or N}
filedate: char6; {yymmdd of last file directory}
level: integer;
total_calls: integer;
pagelen: integer;
lastread: array[0..9] of integer; {for main board & each conf.}
uploads: integer;
downloads: integer;
lastused: integer; {time used on previous call}
dead: char; {positive delete flag}
end;
var deffile:file of pcb_sys_rec;
outrec:PCB_SYS_REC;
timer2,timeleft2,logontime2,numout:longint;
singleout:integer;
nameout:string[31];
tl1,tl2:string[2];
tempbaud:string[4];
tempt:string[5];
u:userrec;
longtemp:longint;
Begin
assign (deffile,'pcboard.sys'); {info file}
rewrite(deffile);
outrec.display:='-1'; {display on console? -1 or 0}
outrec.printer:=' 0'; {print log? -1 or 0}
outrec.pagebell:=' 0'; {bother sysop? -1 or 0}
outrec.callalarm:=' 0'; {caller alarm sound? -1 or 0}
outrec.sysopnext:=' '; {force sysop on next? 'N ', 'X '
or ' '}
outrec.modemtype:=' 0';
if (ansigraphics in urec.config)
then outrec.graphics:='N'
else outrec.graphics :=' '; {ansi graphics mode? '-1',' 0'or'7E'}
outrec.nodechat:='N';
if local then tempbaud:=' LOCA' else
str(baudrate:5,TempBaud); {caller's baud rate}
Tempbaud := TempBaud + #0;
Move(tempbaud[1],outrec.baudopen[1],5);
outrec.baudrate:=outrec.baudopen;
outrec.recordnum:=1;
move(urec.handle[1],outrec.firstname,15); {caller's name}
move(urec.password[1],outrec.password,12);
{caller's password (last 2 chars redef'd}
outrec.timelogon:=logontime;
outrec.timeused:=configset.usertim[ulvl]-urec.timetoday;{This one was scary}
str(trunc(logontime DIV 60),tl1);
str((logontime MOD 60),tl2);
tempt:=tl1+':'+tl2; {time the user logged on in hh:mm}
move(tempt[1],outrec.logonstr[1],5);
outrec.timelimit:=configset.usertim[ulvl];
outrec.bytelmtdl:=0; {bytes of download limit}
FillChar(outrec.confexit,2,'0');
FillChar(outrec.confflags,5,'0');
FillChar(outrec.confscan,5,'0');
outrec.conftime:=0;
outrec.timecred:=0;
outrec.language:=' ';
move(urec.handle[1],outrec.name,25); {caller's name}
outrec.timeleft:=urec.timetoday;
outrec.nodenum:='1';
outrec.eventtime:='00:00';
outrec.eventflag:='NO';
outrec.eventmove:='NO';
outrec.msgrecall:='0001';
outrec.comportid:='1'; {commport}
outrec.reserved:=' ';
write(deffile,outrec);
close(deffile);
end;
Procedure dorinfo1;
var u:userrec;
deffile:text;
Begin
assign (deffile,'dorinfo1.def'); {info file}
rewrite(deffile);
writeln(deffile,configset.longnam); {BBS name}
writeln(deffile,'Martin'); {sysop first name}
writeln(deffile,'Roachkiller'); {sysop last name}
if local
then
writeln(deffile,'LOCAL')
else
writeln(deffile,'COM',configset.useco); {COMM port}
writeln(deffile,baudrate,' BAUD,N,8,1'); {baudrate^BAUD,N,n,x}
writeln(deffile,'0'); {network type }
writeln(deffile,unam); {user first name}
writeln(deffile,' '); {user last name}
writeln(deffile,' '); {user city,state}
if (ansigraphics in urec.config) then {0 no graphics }
writeln(deffile,'2') else writeln(deffile,'0'); {1-ascii 2-ansi}
writeln(deffile,ulvl); {user level}
writeln(deffile,timeleft); {time remaining}
writeln(deffile,'0'); {EOF must have}
textclose(deffile);
end;
procedure def_user;
var deffile:text;
temptime : integer;
Begin
assign (deffile,'USERINFO.TXT'); {info file}
rewrite(deffile);
writeln(deffile,unam); {user first name}
writeln(deffile,baudrate);
if parity then
writeln(deffile,'7')
else
writeln(deffile,'8');
if timeleft > 60 then temptime := 60 else temptime := timeleft;
writeln(deffile,temptime*60); {time remaining}
writeln(deffile,'0'); {EOF must have}
textclose(deffile);
end;
Procedure Definefiles;
begin
def_pcbfile;
dorinfo1;
def_user;
end;
begin
end.